#include <stdio.h>
#include <unistd.h>
#include <signal.h>


int kvalue = 0;

void sigroutine(int dunno)
{
    printf("receive signal %d.\n", dunno);

    /* 让这个回调函数对主程序的运行产生影响. */
    kvalue ++;
}


int main()
{
    /* 注册信号. sigroutine回调函数时你需要自行定义的. */
    signal(SIGUSR1, sigroutine);

    while(1) {
        printf("main task running. kvalue = %d .\n", kvalue);
        sleep(1);
    }

    return 0;
}
/*
    以上code编译成可执行程序signaltest1. 然后运行.
    在shell中输入命令killall -s SIGUSR1 signaltest1
    可能通过看signaltest1的打印观察实际函数调用过程.
    更丰富的Linux应用信号请自行搜索.
 */
